// Copyright (c) Appeon. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

namespace SnapObjects.Data
{
    /// <summary>
    ///     Specifies the tracked state of the model object.
    /// </summary>
    public enum ModelState
    {
        /// <summary>
        ///     This model has not been tracked.
        /// </summary>
        NotTracked = -1,

        /// <summary>
        ///     No data has been changed since retrieved.
        /// </summary>
        NotModified = 0,

        /// <summary>
        ///     Data has been changed since retrieved.
        /// </summary>
        Modified = 1,

        /// <summary>
        ///     Data is newly added and no values have been specified for its properties.
        /// </summary>
        New = 2,

        /// <summary>
        ///     Data is newly added, and values have been assigned to its properties.
        /// </summary>
        NewModified = 3,

        /// <summary>
        ///     Data has been deleted since retrieved.
        /// </summary>
        Deleted = 4
    }
}
